#include "flash.h"

void ble_remote_num_set(uint8_t remote_num)
{
    nvs_handle out_handle;
    if(remote_num>=255) return;
    if (nvs_open("RemoteNum", NVS_READWRITE, &out_handle) != ESP_OK)
    {
        printf("ble_remote_num_set open fail\r\n");
        return;
    }
    if (nvs_set_u8(out_handle, "remote_N", remote_num) != ESP_OK)
    {
        printf("--set remote_num fail\r\n");
    }
    else
    {
        printf("remote_num:%d\r\n",remote_num);
    }
    nvs_commit(out_handle);
    nvs_close(out_handle);
}

uint8_t ble_remote_num_get()
{
    uint8_t remote_num;
    nvs_handle out_handle;
    if (nvs_open("RemoteNum", NVS_READONLY, &out_handle) != ESP_OK)
    {
        printf("ble_remote_num_get open fail\r\n");
        return 0;
    }
    if (nvs_get_u8(out_handle, "remote_N", &remote_num) != ESP_OK)
    {
        printf("--get remote_num fail\r\n");
        remote_num=0;
    }
    else
    {
        printf("remote_num:%d\r\n",remote_num);
    }

    nvs_close(out_handle);
    return remote_num;    
}


void remote_addr_set(uint32_t remote_addr,uint8_t num)
{
    nvs_handle out_handle;
    char string[10];
    if (nvs_open("RemoteAddr", NVS_READWRITE, &out_handle) != ESP_OK)
    {
        printf("remote_addr_set open fail\r\n");
        return ;
    }
    sprintf(string,"addr_%d",num);

    if (nvs_set_u32(out_handle, string, remote_addr) != ESP_OK)
    {
        printf("--set remote_addr fail\r\n");
    }
    nvs_commit(out_handle);
    nvs_close(out_handle);    
}

int32_t remote_addr_get(uint8_t num)
{
    nvs_handle out_handle;
    char string[10];
    uint32_t remote_addr;
    if (nvs_open("RemoteAddr", NVS_READONLY, &out_handle) != ESP_OK)
    {
        printf("remote_addr_get open fail\r\n");
        return -1;
    }
    sprintf(string,"addr_%d",num);
    if (nvs_get_u32(out_handle,string, &remote_addr) != ESP_OK)
    {
        printf("--get remote_addr fail\r\n");
        remote_addr=0; 
    }
    else
    {
         printf("remote_addr:%x\r\n",remote_addr);
    }

    nvs_close(out_handle);
    return remote_addr;     
}



// void remote_group_set(uint8_t num)
// {
//     nvs_handle out_handle;
//     char string[10];
//     if (nvs_open("RemoteGroup", NVS_READWRITE, &out_handle) != ESP_OK)
//     {
//         printf("remote_group_set open fail\r\n");
//         return ;
//     }
//     sprintf(string,"group_%d",num);

//     if (nvs_set_u8(out_handle, string, num) != ESP_OK)
//     {
//         printf("--set remote_addr fail\r\n");
//     }
//     nvs_commit(out_handle);
//     nvs_close(out_handle);    
// }

// uint8_t remote_group_get(uint8_t num)
// {
//     nvs_handle out_handle;
//     char string[10];
//     uint8_t remote_group;
//     if (nvs_open("RemoteGroup", NVS_READONLY, &out_handle) != ESP_OK)
//     {
//         printf("remote_group_get open fail\r\n");
//         return -1;
//     }
//     sprintf(string,"group_%d",num);
//     if (nvs_get_u8(out_handle,string, &remote_group) != ESP_OK)
//     {
//         printf("--get remote_addr fail\r\n");
//         remote_group=0; 
//     }
//     else
//     {
//          printf("remote_addr:%x\r\n",remote_group);
//     }

//     nvs_close(out_handle);
//     return remote_group;     
// }